﻿//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1998-2024 Glodon Company Limited.
//
// Licensed under the MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the “Software”),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

namespace gcmp
{
    /// \brief Token类型
    enum class ExprTokenType : uint32_t
    {
        EndInput = 0U,
        Error = 1U,

        ID = 2U,
        IDRef = 3U,
        Integer = 4U,
        Float = 5U,
        String = 6U,
        Function = 7U,
        ExprPaser = 8U,
        ExprPaserRef = 9U,
        // 预留
        Plus = 100U,
        Minus = 101U,
        Times = 102U,
        Over = 103U,
        Modulus = 104U,
        // 预留
        EQ = 200U,
        LT = 201U,
        LE = 202U,
        GT = 203U,
        GE = 204U,
        NotEQ = 205U,
        // 预留
        And = 300U,
        Or = 301U,
        Not = 302U,
        // 预留
        True = 400U,
        False = 401U,
        // 预留
        Comma = 420U,
        LParen = 421U,
        RParen = 422U
    };
}